# -*- coding: utf-8 -*-
import fugashi #分词、做假名标注、NLP 预处理
import jaconv #在平假名 ↔ 片假名、全角 ↔ 半角、大小写之间相互转换。
import fugashi, unidic
from pathlib import Path

dic_path = Path(unidic.DICDIR)
tagger = fugashi.Tagger(f"-d \"{dic_path}\"")
print("当前使用的词典路径:", dic_path)
def add_furigana(text: str) -> str:
    """
    给日语句子自动加上假名注音
    例如: '昨日、東京で友達に会いました。'
        -> '昨日（きのう）、東京（とうきょう）で友達（ともだち）に会いました。'
    """
    result = []
    for word in tagger(text):
        # 部分词没有读音（符号等），要判断
        if len(word.feature) >= 8:
            reading = word.feature[7]  # カタカナ读音
            hiragana = jaconv.kata2hira(reading)  # 转换为平假名
            # 如果原词和假名不同（说明有汉字），才加注音
            if word.surface != hiragana:
                # if(word.feature[1]=="一般"):
                    print(f'{word}==>{word.surface}=={word.feature[9]}')

                    print(f'{word}==>{word.surface}=={word.feature}')
                    print("=" * 40)
                    result.append(f"{word.surface}（{hiragana}）")
            else:
                result.append(word.surface)
        else:
            result.append(word.surface)
    return "".join(result)

# 🔹 测试
if __name__ == "__main__":
    text = "燃えないゴミは、ガラス、金属、陶器、石など、燃やせないものが含まれます。具体的には、ガラス瓶、金属製の缶、陶器の破片などがこれにあたります。"
    annotated = add_furigana(text)
    print("原文:", text)
    print("注音:", annotated)
